1. Field of the Invention
The present invention relates generally to graphical user interfaces for computer systems. In particular, the present invention relates to a graphical user interface for providing a user with direct control of a scope and presentation of data displayed in a display window of a window-based computing environment.
2. Description of the Related Art
Computers are widely used in schools, homes, and the workplace, and the inexperience of many computer users has imposed a requirement for enhanced user interfaces. Graphical user interfaces (or GUIs) make human interactions with computers more intuitive by conveying information to users by way of a video monitor or other display device by various combinations of graphical items. Examples of graphical user interfaces are those provided with operating systems such as IBM's OS/2® and Microsoft's Windows 2000®. These operating systems rely on a “window-based” workspace for displaying application programs, operating system information and program groupings. A window is typically user-sizable to occupy a larger or smaller portion of a workstation's video monitor. Typically, the size of the text data, images, etc. (collectively, “data”) displayed as an image in the window remains constant, and the portion of the data file displayed in the window varies, e.g. a smaller window permits viewing of a smaller portion of the document, image, etc. (“data file”). Resizing features, and programming techniques for implementing such resizing features are well known in the art.
Windows typically include scroll controls allowing a user to manipulate data displayed in a window of a given size. A relatively large data file can be viewed a portion at a time in a relatively small window by manipulating the scroll controls to control which portion of the data file is displayed in the window at any point in time. Such scroll controls, and programming techniques for implementing them, are well known in the art.
Exemplary scroll controls of the prior art are shown in FIG. 1A, which depicts a window 100 showing an image of an exemplary graph that is part of a data file that is viewable in the window 100. The image shown in FIG. 1A is an excerpt of data shown in the exemplary graph shown in FIG. 1B, as discussed further below. These exemplary graphs represent application server resource and performance metrics “counters”. On the right hand side of the window 100 is a scroll bar 130. The scroll bar 130 includes a browse up arrow 132 which can be selected, e.g. by clicking a button of a mouse when a mouse pointer is displayed on a video monitor over arrow 132, to scroll upward and view an upper portion of the data file; a browse down arrow 134 which can be selected to scroll downward; a scroll field 138; and a scroll box 136 slidably moveable within the scroll field 138 as discussed further below.
The scroll box 136 is “yoked” to the display window 100 such that selecting, i.e. clicking, the scroll box 136 and dragging it within the scroll bar 130 along the scroll field 138 causes substantially simultaneous display of an associated portion of the data file in the window. This allows expedited traversal of the related information. In other words, a user's direct manipulation of the scroll box 136 controls the portion of the data file displayed in the window 100. This “yoked” feature, and programming methods for implementing this feature, is well known in the art. Accordingly, traversal of such data may be made at a variable speed. For example, one may rapidly drag the scroll box 136 toward the bottom of the scroll field 138 to view the end of a data file displayed in window 100, then drag slowly to locate an area of interest in the data file, and then drag very slowly to locate a precise point of interest in the data file. These are intuitive and advantageous features of a GUI. However, from a window displaying only a small portion of a data file, it is difficult to determine where one might find an area of interest in the data file, so the data file must be traversed slowly.
As is typical of scroll controls, the size of the scroll bar 130, and therefore the scroll field 138, is determined by the size of the window 100. The scale of the scroll field will vary, however, dependent upon the size of the scroll field 138 corresponds to the size/length of the data file viewable in the window associated with the scroll bar 130. Accordingly, a four inch long scroll field 138 may at one time correspond to a length of a two page document and at another time correspond to a length of a fifty-page document. The scroll box 136 may travel within the scroll field. The scroll box is automatically sized by application software such that the size/length of the scroll box 136 relative to the entire length of the scroll field 138 corresponds to the portion of the data file currently displayed in the window relative to the entire data file. In other words, the scroll box 136 indicates a scope of data displayed in the window. For example, consider a five-page long document data file that is being viewed, a portion at a time, in a window having scroll controls that is sized to display one page of the document at a time (i.e. the scope of the data displayed in the window is one page). In this example, the scroll box 136 would be automatically sized to correspond to approximately one-fifth of the size of the scroll field 138 to represent that the scope of the data being displayed in the window is approximately one-fifth of the size of the data file. The size of the scroll box cannot be varied by the user. Accordingly, a user cannot use the scroll box 136 to control the scope of data displayed in a window. Accordingly, in the example of the five page document, the scroll box could not be resized to display more (or less) than one page of the document in the window.
FIG. 1B shows an exemplary overview graph 110 of application server resource and performance metrics gathered by a “Resource Analyzer” tool of WebSphere® Application Server software manufactured and/or distributed by International Business Machines Corporation of Armonk, N.Y., U.S.A. Such software allows a user to record such data by saving it in a log file. The exemplary graph shows data collected from 12:23 p.m. to 1:15 p.m. Points of interest can be quickly located from this overview graph 110, e.g., at a glance, but cannot be viewed in detail because of the small scale on which the data is displayed. Consider a point of interest at the intersection of lines A and B as shown in overview graph 110. It is difficult to view the overview graph 110 with precision. Accordingly, it is advantageous to view an enlarged portion of the overview graph as a detail graph, such that the data may be viewed more precisely. In other words, it is advantageous to view the data in a display window having a smaller scope. For example, FIG. 1A shows a detail graph 120 of a portion C of the overview graph 110 shown in FIG. 1B. From the detail graph 120 it may be determined that lines A and B intersect at a magnitude of approximately 5.5, although this information is indeterminable from overview graph 110. However, when viewing only a detail graph, as in FIG. 1A, it becomes difficult to locate a point of interest.
Some software applications, such as IBM's WebSphere® Application Server, provide for viewing of log file data using a videocassette recorder (“VCR”)—like interface. Such an interface allows a user to rewind, play, stop, fast forward etc. the data displayed in the window or view port, e.g. using corresponding buttons 140a, 140b, 140c 140d shown in FIG. 1A. Such a detail view does not provide an overview which allows for quick, “at-a-glance” location of points of interest on the graph. Additionally, such an interface requires the data to be traversed in a linear, i.e. sequential, fashion, and at a constant, predetermined speed (albeit at a play-rate or a faster fast forward-rate). What is needed is a GUI which provides for control over the speed of data traversal and the scope of data displayed in the window by direct manipulation of an element, e.g. using a “click and drag” technique.
As described above, the detail graph 120 could be displayed in a window that is manipulable with a scroll bar, as described above (not shown in FIG. 1A), e.g. by providing a horizontal scroll bar to traverse data from 12:23 p.m. to 1:15 p.m. However, the portion shown in the detail view window would be a fixed proportion of the overview graph 110, as is known in the prior art, e.g. 8 minutes (from 12:35 to 12:43) as shown in the example of FIG. 1A. Applicants have determined that it is desirable to provide a GUI which provides for direct control of the amount, i.e. scope, of data displayed in the detail view, e.g., to view more or less than 8 minutes. It is also desirable to provide a user with direct control of such scope in a GUI, e.g., using “click and drag” and/or “drag and drop” techniques (collectively, “click and drag” techniques) which allow for direct manipulation of elements and which are common to window-based environments.
In some software applications, such as word processing software, zoom controls are provided to control an amount of data displayed within a window of a given size. Zooming results in a change in size of data displayed within the window, and for a given window, a corresponding change in scope of the data displayed within the window. Such zoom controls are typically selected from a menu, e.g. by selecting “200% zoom”. Such a zoom is uniform across the entire data file/image, e.g., in both the x and y directions, which may sometimes be undesirable, e.g. when the data varies more widely in one direction than in another direction.
What is needed is a GUI which provides for control over the speed of data traversal and the scope of data displayed in the window by direct manipulation of an element, e.g. using a “click and drag” technique.
Applicants have determined that it is desirable to provide a GUI which provides for direct control of the amount, i.e. scope, of data displayed in the detail view. It is also desirable to provide a user with direct control of such scope in a GUI, e.g., using “click and drag” and/or “drag and drop” techniques (collectively, “click and drag” techniques) which allow for direct manipulation of elements and which are common to window-based environments.
It is also desirable to provide a GUI which allows for independent control of the scope in various directions such that the zoom, or adjusted scope, is not uniform across the data file.
The present invention fulfills these needs, among others.